﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace RootMotion.Dynamics
{

    public interface ICollisionEventListener
    {
        void OnCollisionEnterEvent(Collision collision, CollisionEventBroadcaster broadcaster);
        void OnCollisionStayEvent(Collision collision, CollisionEventBroadcaster broadcaster);
        void OnCollisionExitEvent(Collision collision, CollisionEventBroadcaster broadcaster);
    }

    public class CollisionEventBroadcaster : MonoBehaviour
    {

        public ICollisionEventListener listener;
        public MuscleLite muscle;

        private void OnCollisionEnter(Collision collision)
        {
            if (listener == null) return;
            listener.OnCollisionEnterEvent(collision, this);
        }

        private void OnCollisionStay(Collision collision)
        {
            if (listener == null) return;
            listener.OnCollisionStayEvent(collision, this);
        }

        private void OnCollisionExit(Collision collision)
        {
            if (listener == null) return;
            listener.OnCollisionExitEvent(collision, this);
        }
    }
}
